/*****************************************************************************************
 **  Author:COCO 2022
 *****************************************************************************************/
//此js文件是用来自定义扩展业务代码，可以扩展一些自定义页面或者重新配置生成的代码

let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: "",
    gridBody: "",
    gridFooter: "",
    //新建、编辑弹出框扩展组件
    modelHeader: "",
    modelBody: "",
    modelFooter: "",
  },
  tableAction: "", //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
    onInit() {
      //框架初始化配置前
      this.columnIndex = true;
      this.boxOptions.height = 450;
    },
    onInited() {
      //框架初始化配置后
      console.log("onInited called");
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false，则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后，result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      // 新建保存前的数据处理
      console.log("addBefore - 完整的formData数据:", formData);
      console.log("addBefore - 当前表单数据:", this.editFormFields);

      try {
        // 确保formData使用当前表单的值
        const currentFormData = this.editFormFields || {};
        Object.assign(formData, currentFormData);

        // 检查必填字段
        if (!formData.Mass_DetectionItems_Name) {
          this.$message.error("检测项名称不能为空");
          console.error("Mass_DetectionItems_Name is empty");
          return false;
        }
        if (!formData.Mass_DetectionItems_Type) {
          this.$message.error("检测项类型不能为空");
          return false;
        }
        if (!formData.Mass_DetectionItems_Tool) {
          this.$message.error("检测工具不能为空");
          return false;
        }

        return true;
      } catch (error) {
        console.error("addBefore error:", error);
        this.$message.error("表单处理出错");
        return false;
      }
    },
    updateBefore(formData) {
      // 编辑保存前的数据处理
      console.log("updateBefore - 完整的formData数据:", formData);
      console.log("updateBefore - 当前表单数据:", this.editFormFields);

      try {
        // 确保formData使用当前表单的值
        const currentFormData = this.editFormFields || {};
        Object.assign(formData, currentFormData);

        // 检查必填字段
        if (!formData.Mass_DetectionItems_Name) {
          this.$message.error("检测项名称不能为空");
          console.error("Mass_DetectionItems_Name is empty");
          return false;
        }
        if (!formData.Mass_DetectionItems_Type) {
          this.$message.error("检测项类型不能为空");
          return false;
        }
        if (!formData.Mass_DetectionItems_Tool) {
          this.$message.error("检测工具不能为空");
          return false;
        }

        return true;
      } catch (error) {
        console.error("updateBefore error:", error);
        this.$message.error("表单处理出错");
        return false;
      }
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenBefore(row) {
      console.log("modelOpenBefore called");
      return true;
    },
    modelOpenAfter(row) {
      console.log("modelOpenAfter - 当前操作:", this.currentAction);
      console.log("modelOpenAfter - 传入的row数据:", row);
      console.log("modelOpenAfter - 当前表单数据:", this.editFormFields);

      try {
        // 编辑时数据反填
        if (this.currentAction === "Update" && row) {
          const formData = {
            Mass_DetectionItems_Name: row.Mass_DetectionItems_Name || "",
            Mass_DetectionItems_Type: row.Mass_DetectionItems_Type || "",
            Mass_DetectionItems_Tool: row.Mass_DetectionItems_Tool || "",
            Mass_DetectionItems_Code: row.Mass_DetectionItems_Code || "",
            Mass_DetectionItems_Remark: row.Mass_DetectionItems_Remark || "",
          };

          // 更新表单数据
          this.editFormFields = formData;

          // 确保数据更新后再打印
          this.$nextTick(() => {
            console.log(
              "modelOpenAfter - 更新后的表单数据:",
              this.editFormFields
            );
          });
        }
      } catch (error) {
        console.error("modelOpenAfter error:", error);
        this.$message.error("表单初始化出错");
      }
    },
  },
};
export default extension;
